bitkeeper revision 1.15.1.6 (3e2accd5ZlgmUafxBwWpk2RkxT-TtQ)
authorkaf24@labyrinth.cl.cam.ac.uk <kaf24@labyrinth.cl.cam.ac.uk>
Sun, 19 Jan 2003 16:05:41 +0000 (16:05 +0000)
committerkaf24@labyrinth.cl.cam.ac.uk <kaf24@labyrinth.cl.cam.ac.uk>
Sun, 19 Jan 2003 16:05:41 +0000 (16:05 +0000)
dev.c:
  Fix network transmit refcnt bug.

xen-2.4.16/net/dev.c

index 449879a1a3755ffac1ff47cf21876819cb1dea16..b99a2e91b418fb9c3b36cb38384dc3cff9b51a35 100644 (file)
@@ -1977,21 +1977,17 @@ long do_net_update(void)
 
             if ( skb != NULL )
             {
-                skb_get(skb); /* get a reference for non-local delivery */
                 skb->protocol = eth_type_trans(skb, skb->dev);
                 skb->src_vif = current_vif->id; 
                 net_get_target_vif(skb);
                 if ( skb->dst_vif > VIF_PHYSICAL_INTERFACE )
                 {
-                    if (netif_rx(skb) == 0)
-                        /* Give up non-local reference. Packet delivered locally. */
-                        kfree_skb(skb);
+                    (void)netif_rx(skb);
                 }
                 else if ( skb->dst_vif == VIF_PHYSICAL_INTERFACE )
                 {
-
-                        skb_push(skb, skb->dev->hard_header_len);
-                        dev_queue_xmit(skb);
+                    skb_push(skb, skb->dev->hard_header_len);
+                    dev_queue_xmit(skb);
                 } 
                 else
                 {